package consultaADistancia;

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import oda.ODT_Devoluciones;
import oda.ODT_Honorario;
import oda.ODT_HonorariosCausados;
import oda.ODT_PagosEfectuados;
import oda.ODT_estado_doc;
import accesoADatos.TRN_honorario;

import com.movil.registrodelapropiedadgt.R;
import com.movil.registrodelapropiedadgt.R.layout;
import com.movil.registrodelapropiedadgt.R.menu;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.FeatureInfo;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ListView;
import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;

public class Show_honorarios extends Activity {
	
	/*******************************************************************************************/ 
	static String NoRecibo="";
	String[] groups;//agrupacion de tabs
	  
	String[] pagos_efectuados;// areglo de pagos efectuados
	String[] Honorarios;// arreglo con desglose de honorarios
	
	String[] Devoluciones;// arreglo 
	  
	ArrayList<Map<String, String>> groupData;
	ArrayList<Map<String, String>> childDataItem;
	ArrayList<ArrayList<Map<String, String>>> childData;
	Map<String, String> mapa;
	ExpandableListView elvMain;
	TRN_honorario tradutor=new TRN_honorario();
	/*******************************************************************************************/
	  
	ODT_Honorario honorarios=new ODT_Honorario();
	TextView L_recibo;
	TextView L_fecha;  
	TextView L_saldo;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_show_honorarios);
		
		llenarRecibo(NoRecibo);
		
		L_recibo=(TextView) findViewById(R.id.LL_Dato1_honorarios);
		L_fecha= (TextView) findViewById(R.id.LL_Dato2_honorarios);
		L_saldo= (TextView) findViewById(R.id.LL_Saldo);
		
		DateFormat df =  DateFormat.getDateInstance(DateFormat.SHORT);
		//String sFecha =  honorarios.getFecha_ingreso();
		
		L_recibo.setText("Recibo: "+NoRecibo);
		//L_fecha.setText( "Fecha : "+sFecha);
		
		/*************************************************************/
		  
        groupData = new ArrayList<Map<String, String>>();
        for (String group : groups) {
          
        	mapa = new HashMap<String, String>();
            mapa.put("groupName", group); 
            groupData.add(mapa);  
        }
        
        String groupFrom[] = new String[] {"groupName"};
        int groupTo[] = new int[] {android.R.id.text1};
        

        childData = new ArrayList<ArrayList<Map<String, String>>>(); 
        
        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : pagos_efectuados) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : Honorarios) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : Devoluciones) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        String childFrom[] = new String[] {"phoneName"};
        int childTo[] = new int[] {android.R.id.text1};
        
        //adaptador para la lista expancible
        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
            this,
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            groupFrom,
            groupTo,
            childData,
            android.R.layout.simple_list_item_1,
            childFrom,
            childTo);
            
        elvMain = (ExpandableListView) findViewById(R.id.LEL_Honorarios);
        elvMain.setAdapter(adapter);
		
        //setear el total del saldo que se debe pagar
        L_saldo.setText("Saldo: Q."+honorarios.getSaldo());
	}

	/**
	 * 
	 * @param NoRecibo numero de resio del cual se desea obtener la data
	 * 
	 */
	private void poblarhonorario(String NoRecibo){
		
		Date fachaActual=new Date();
		
		ODT_HonorariosCausados honcaus1=new ODT_HonorariosCausados();
		ODT_HonorariosCausados honcaus2=new ODT_HonorariosCausados();
		ODT_HonorariosCausados honcaus3=new ODT_HonorariosCausados();
		
		ODT_Devoluciones devo1= new ODT_Devoluciones();
		ODT_Devoluciones devo2= new ODT_Devoluciones();
		ODT_Devoluciones devo3= new ODT_Devoluciones();
		
		ODT_PagosEfectuados pago1=new ODT_PagosEfectuados();
		ODT_PagosEfectuados pago2=new ODT_PagosEfectuados();
		ODT_PagosEfectuados pago3=new ODT_PagosEfectuados();
		
		honcaus1.setMonto((float) 300.50);
		honcaus1.setNombreDocumento("1R234242342");
		honcaus2.setMonto((float) 50.50);
		honcaus2.setNombreDocumento("1R444242352");
		honcaus3.setMonto((float) 200.00);
		honcaus3.setNombreDocumento("1R004242360");
		
		devo1.setMonto((float) 50.00);
		devo1.setFecha("12/12/12");
		devo2.setMonto((float) 50.00);
		devo2.setFecha("12/21/12");
		devo3.setMonto((float) 50.00);
		devo3.setFecha("12/12/12");
		
		pago1.setMonto((float) 500.00);
		pago1.setFecha("11/11/11");
		pago2.setMonto((float) 50.00);
		pago2.setFecha("11/11/11");
		pago3.setMonto((float) 50.00);
		pago3.setFecha("11/11/11");
		
		//honorarios.setFecha_ingreso("12/12/12");
		
		honorarios.addHonorario(honcaus1);
		honorarios.addHonorario(honcaus2);
		honorarios.addHonorario(honcaus3);
		
		honorarios.addDevoluciones(devo1);
		honorarios.addDevoluciones(devo2);
		honorarios.addDevoluciones(devo3);
		
		honorarios.addPagoEfectuado(pago1);
		honorarios.addPagoEfectuado(pago2);
		honorarios.addPagoEfectuado(pago3);
		
		honorarios=tradutor.getHonorario(tradutor.getTest());
	} 	
	/**
	 * 
	 * @param Norecibo nuero de recibo de el cual se requiere la data
	 *
	 */
	private void llenarRecibo(String Norecibo){
		//metodo para obtere la data del WS
		poblarhonorario(Norecibo);
		
		//arreglos para almacenar los datos de el recibo
		ArrayList<String> stock_list = new ArrayList<String>();
	    ArrayList<String> Arrhonorario=new ArrayList<String>();
	    ArrayList<String> ArrPagos=new ArrayList<String>();
	    ArrayList<String> ArrDevoluciones=new ArrayList<String>();
		
	    //poblacion de vector de Devoluciones
		for (int i = 0; i < honorarios.getListaDevoluciones().size(); i++) 
		{
			DateFormat df =  DateFormat.getDateInstance();
			String sFecha = honorarios.getListaDevoluciones().get(i).getFecha();
			ArrDevoluciones.add("              "+sFecha+" Q."+honorarios.getListaDevoluciones().get(i).getMonto());
		}
		
		//poblacion de vector de honorarios
		for (int i = 0; i < honorarios.getListaHonorarios().size(); i++) 
		{
			Arrhonorario.add("              "+honorarios.getListaHonorarios().get(i).getNombreDocumento()
					+" Q."+honorarios.getListaHonorarios().get(i).getMonto());
		}
		//poblacion de vector de Pagos Efectuados
		for (int i = 0; i < honorarios.getListaPagosEfectuados().size(); i++) 
		{
			DateFormat df =  DateFormat.getDateInstance();
			String sFecha =  honorarios.getListaPagosEfectuados().get(i).getFecha();
			
			ArrPagos.add("              "+sFecha+" Q."+honorarios.getListaPagosEfectuados().get(i).getMonto());
		}
		
	    //seteo de leng del String[]
	    pagos_efectuados=new String[ArrPagos.size()];
	    Honorarios=new String[Arrhonorario.size()];
	    Devoluciones=new String[ArrDevoluciones.size()];
	    
	    //casteo de arrayList a String[] 
	    pagos_efectuados = ArrPagos.toArray(pagos_efectuados);
	    Honorarios = Arrhonorario.toArray(Honorarios);
	    Devoluciones = ArrDevoluciones.toArray(Devoluciones);
		
	    //////////////////////////////////////////////////////////////////////////////////////////////////////
		//seteo de encabezados con sumatorias de honorarios, pagos y devoluciones
	    groups = new String[] {"Pagos Efectuados \n Q. +"+honorarios.getTotalPagoEfectuados(),
				"Honorarios Causados \n Q. -"+honorarios.getTotalHonorarios(),
				"devoluciones \n Q. -"+honorarios.getTotalDevoluciones()};
		  
		//////////////////////////////////////////////////////////////////////////////////////////////////////
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.show_honorarios, menu);
		return true;
	}

}
